/**
    算法描述：
    核心问题：
    解决所需数据结构+算法：
**/
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
using namespace std;
char st[1110000];
char cc[7][10];
bool tf(int x,int j)
{// 第j个字符是否匹配此时从x位置出发的字符串
  for(int i=1;i<=strlen(cc[j]+1);i++)
//   对每个字符进行比较，如有不同，直接返回false
  if(cc[j][i]!=st[x+i]) return false;
  return true;
}
bool f[1110000];
int main()
{
  int t;
  scanf("%d",&t);
//   构建需要的单词表
  cc[1][1]='i';cc[1][2]='n';
  cc[2][1]='o';cc[2][2]='n';cc[2][3]='e';
  cc[3][1]='o';cc[3][2]='u';cc[3][3]='t';
  cc[4][1]='p';cc[4][2]='u';cc[4][3]='t';cc[4][4]='o';cc[4][5]='n';
  cc[5][1]='i';cc[5][2]='n';cc[5][3]='p';cc[5][4]='u';cc[5][5]='t';
  cc[6][1]='o';cc[6][2]='u';cc[6][3]='t';cc[6][4]='p';cc[6][5]='u';cc[6][6]='t';
  while(t--)
  {
    memset(f,false,sizeof(f));
    f[0]=true;
    scanf("%s",st+1);
    int n=strlen(st+1);
    bool bk=false;
    for(int i=0;i<n;i++)
    // 遍历这个输入的字符串
    {
      if(st[i+1]!='i'&&st[i+1]!='o'&&st[i+1]!='p'&&st[i+1]!='n'&&st[i+1]!='e'&&st[i+1]!='u'&&st[i+1]!='t') break;
    //   不符合要求直接break
      else
      {
        for(int j=1;j<=6;j++)
        {
            // 剪枝细节两处
          if(i+strlen(cc[j]+1)>n) break;// 长度比最短的都长，直接退
          if(f[i]==false) break;// 上一个不相等，直接退
          if(tf(i,j)==true) f[i+strlen(cc[j]+1)]=true; // 判断是否相等，相等置为true 
        }   
      }     
    }
    if(f[n]==false) printf("NO\n");
    else printf("YES\n");   
  }
  return 0; 
}